package com.MetaverseMaker.UniverseFarm.service.impl;

/**
 * @Auther: wanghuiqian
 * @Date: 2021/12/22 - 12 - 22 - 11:20
 * @Description: service.xml
 * @version: 1.0
 */



import com.MetaverseMaker.UniverseFarm.dto.SoilCount;
import com.MetaverseMaker.UniverseFarm.dto.SoilNum;
import com.MetaverseMaker.UniverseFarm.entity.SoilInfo;
import com.MetaverseMaker.UniverseFarm.entity.SoilInfoExample;
import com.MetaverseMaker.UniverseFarm.entity.UserInfo;
import com.MetaverseMaker.UniverseFarm.mapper.SoilInfoMapper;
import com.MetaverseMaker.UniverseFarm.service.ISoilInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 土地管理服务层实现类
 */
@Service()
public class SoilInfoServiceImpl implements ISoilInfoService {

    @Autowired
    private SoilInfoMapper soilInfoMapper;

    /**
     * 分页查找
     */


    @Override
    public List<SoilInfo> querysoilByTypeAndLimit(String type, Integer limit) {
        return soilInfoMapper.querysoilByTypeAndLimit(type,limit);
    }

    @Override
    public SoilCount getsoilCount() {
        return soilInfoMapper.getsoilCount();
    }

    @Override
    public List<SoilInfo> querysoilForPage(int startindex, int size) {
        return soilInfoMapper.querysoilForPage(startindex,size);
    }

    @Override
    public SoilInfo querySoilGoodById(Integer id) {
        /*System.out.println("id:"+id);*/
        return soilInfoMapper.querySoilGoodById(id);
    }

    @Override
    public List<SoilNum> querysoilTypeNum() {
        return soilInfoMapper.querysoilTypeNum();
    }

    @Override
    public List<SoilInfo> findSoilGoodsInfoByUserId(UserInfo userInfo) {
        SoilInfoExample soilInfoExample=new SoilInfoExample();
        soilInfoExample.createCriteria().andSoilUseridEqualTo(userInfo.getUserId()).andSoilFruitNotLike("%农场%");
        return soilInfoMapper.selectByExample(soilInfoExample);
    }
    @Override
    public List<SoilInfo> findSoilInfoByUserId(UserInfo userInfo) {
        SoilInfoExample soilInfoExample=new SoilInfoExample();
        soilInfoExample.createCriteria().andSoilUseridEqualTo(userInfo.getUserId()).andSoilFruitLike("%农场%");
        return soilInfoMapper.selectByExample(soilInfoExample);
    }

    /**
     * 新增土地
     *
     * @param soilInfo
     * @return
     * @throws Exception
     */
    @Override
    public boolean save(SoilInfo soilInfo) throws Exception {
        int ifok = soilInfoMapper.insertSelective(soilInfo);
        if (ifok > 0) {

            return true;
        } else
            return false;
    }


    /**
     * 通过id删除土地
     *
     * @param id
     * @return
     * @throws Exception
     */
    @Override
    public boolean deleteById(int id) throws Exception {
        int ifok = soilInfoMapper.deleteByPrimaryKey(id);
        if (ifok > 0) {

            return true;
        } else
            return false;
    }


    /**
     * 更新土地信息
     *
     * @param soilInfo
     * @return
     * @throws Exception
     */
    @Override
    public boolean update(SoilInfo soilInfo) throws Exception {

        int ifok = soilInfoMapper.updateByPrimaryKeySelective(soilInfo);
        if (ifok > 0) {

            return true;
        } else
            return false;
    }

    /**
     * 分页查询土地信息
     *
     * @param pageNum
     * @param pageSize
     * @return
     * @throws Exception
     */
//    @Override
//    public List<SoilInfo> queryAllSoilInfo(int pageNum, int pageSize) throws Exception {
//        //参数pageNum是页码数值，pageSize是查询每页的参数，必须写在调用分页的代码的前面
//        PageHelper.startPage(pageNum, pageSize);
//        return soilInfoMapper.selectByExample(null);
//    }


    /**
     * 通过id查询土地信息
     *
     * @param id
     * @return
     * @throws Exception
     */
    @Override
    public SoilInfo findSoilInfoById(int id) throws Exception {
        return soilInfoMapper.selectByPrimaryKey(id);
    }


    /**
     * 关键字分页查询土地信息
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @return
     * @throws Exception
     */
//    @Override
//    public List<SoilInfo> findSoilInfoByKeyWord(int pageNum, int pageSize, String kw) throws Exception {
//        //参数pageNum是页码数值，pageSize是查询每页的参数，必须写在调用分页的代码的前面
//        PageHelper.startPage(pageNum, pageSize);
//        SoilInfoExample soilInfoExample=new SoilInfoExample();
//        soilInfoExample.createCriteria().andSoilNameEqualTo(kw);
//        return soilInfoMapper.selectByExample(soilInfoExample);
//    }

    /**
     * 关键字查询对应类型的食物信息
     *
     * @param kw
     * @return
     * @throws Exception
     */
//    @Override
//    public List<Dishes> findDishCateByKeyWord(String kw) throws Exception {
//        List<Dishes> tempDishes = new ArrayList();
//        List<Dishes> headDishes = new ArrayList();
//
//
//        tempDishes = soilInfo.queryDishes(kw);
//        Collections.shuffle(tempDishes);
//        headDishes.add(tempDishes.get(0));
//        headDishes.add(tempDishes.get(1));
//        headDishes.add(tempDishes.get(2));
//        return headDishes;
//    }

    /**
     * 通过类型和当前土地的信心推荐出同类土地
     *
     * @param kw
     * @param id
     * @return
     * @throws Exception
     */
//    @Override
//    public List<Dishes> findRecommend(String kw, int id) throws Exception {
//        List<Dishes> tempDishes = new ArrayList();
//        List<Dishes> headDishes = new ArrayList();
//        tempDishes = soilInfo.queryDishes(kw);
//        for (int i = 0; i < tempDishes.size(); i++) {
//            if (tempDishes.get(i).getDishes_id() == id) {
//                tempDishes.remove(i);
//            }
//        }
//        Collections.shuffle(tempDishes);
//        headDishes.add(tempDishes.get(0));
//        headDishes.add(tempDishes.get(1));
//        headDishes.add(tempDishes.get(2));
//        return headDishes;
//    }

    /**
     * 搜索关键字和排序以及排序
     * 对土地信息进行处理
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @param word
     * @return
     * @throws Exception
     */
//    @Override
//    public List<SoilInfo> findSoilInfoOrderBy(int pageNum, int pageSize, String kw, String word) throws Exception {
//        String orderBy = "";
//        if (word.equals("成熟度降")) {
//            orderBy = "soil_maturity" + " desc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        if (word.equals("成熟度升")) {
//            orderBy = "soil_maturity" + " asc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        if (word.equals("价格升")) {
//            orderBy = "soil_price" + " asc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        if (word.equals("价格降")) {
//            orderBy = "soil_price" + " desc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        PageHelper.startPage(pageNum, pageSize, orderBy);
//        SoilInfoExample soilInfoExample=new SoilInfoExample();
//        soilInfoExample.createCriteria().andSoilNameEqualTo(kw);
//        return soilInfoMapper.selectByExample(soilInfoExample);
//    }

    /**
     * 搜索关键字和排序以及排序、食物类别
     * 对食物信息进行处理
     *
     * @param pageNum
     * @param pageSize
     * @param kw
     * @param word
     * @param cate
     * @return
     * @throws Exception
     */
//    @Override
//    public List<Dishes> findDishOrderBy(int pageNum, int pageSize, String kw, String word, String cate) throws Exception {
//        String orderBy = "";
//
//        if (word.equals("价格降")) {
//            orderBy = "dishes_price + 0" + " desc";//按照（数据库）排序字段 倒序 排序
//        }
//        if (word.equals("价格升")) {
//            orderBy = "dishes_price + 0" + " asc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        if (word.equals("销量升")) {
//            orderBy = "dishes_sales + 0" + " asc";//按照（数据库）排序字段 倒序 排序
//
//        }
//        if (word.equals("销量降")) {
//            orderBy = "dishes_sales + 0" + " desc";//按照（数据库）排序字段 倒序 排序
//        }
//
//        PageHelper.startPage(pageNum, pageSize, orderBy);
//        return soilInfo.queryCateDishes(cate, kw);
//    }
    /**
     * 显示所有土地
     */
    public List<SoilInfo> findAll()
    {
        return soilInfoMapper.selectByExample(null);
    }
}


